home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / dev / gui / gtb14.lha / GadToolsBox.DOC < prev    next >
Encoding:
Text File  |  1992-05-13  |  88.7 KB  |  1,679 lines

  1.  
  2.                       GadToolsBox 1.4 (The Sequel)
  3.  
  4.                                  v37.121
  5.  
  6.                  (c) Copyright 1991,92 Jaba Development
  7.                     Written using DICE C v2.06.40 by
  8.                             Jan van den Baard
  9.  
  10.                                User Manual
  11.                   (c) Copyright 1991,92 Jaba Development
  12.  
  13.               This program uses both the powerpacker.library
  14.                   and reqtools.library  (OS 2.0 version)
  15.            These two libraries are  (c) Copyright Nico François
  16.          and the full distribution can be found on Fish Disk 575.
  17.                                     __  __
  18.                                    / / /  \
  19.                             __    / / / /\ \
  20.                        _____\ \__/ /_/ /_/ /_____
  21.                       (__________________________)
  22.  
  23.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  24.  » How to obtain an update.                                                »
  25.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  26.  Many people have written to me asking for updates.  This kind of gotton out
  27.  of hand (it was beginning to cost me a lot of money)  so here is the way to
  28.  get an update  directly  from  me.  Send me a self addressed envelope, 1 US
  29.  dollar (EUROPE) or 2 US dollars if you don't live in europe and a 3½" disk.
  30.  Then I will send you an update as soon as it becomes available.
  31.  
  32.   Disclaimer................ 1
  33.   Copyright/Distribution.... 2
  34.   Electronic Distribution... 3
  35.   Introduction.............. 4
  36.   Requirements.............. 5
  37.   Starting GadToolsBox...... 6
  38.   Making a Gadget........... 7
  39.   Program Menus............. 8
  40.     The Project Menu........ 8.1
  41.     The Gadgets Menu........ 8.2
  42.     The Window Menu......... 8.3
  43.     The Screen Menu......... 8.4
  44.     The Menus Menu.......... 8.5
  45.   Gadget Kind Requester..... 9
  46.     The CheckBox Gadget..... 9.1
  47.     The Integer Gadget...... 9.2
  48.     The ListView Gadget..... 9.3
  49.     The Mx Gadget........... 9.4
  50.     The Cycle Gadget........ 9.5
  51.     The Palette Gadget...... 9.6
  52.     The Scroller Gadget..... 9.7
  53.     The Slider Gadget....... 9.8
  54.     The String Gadget....... 9.9
  55.     The Number Gadget....... 9.10
  56.     The Text Gadget......... 9.11
  57.     The Button Gadget....... 9.12
  58.   Menu Requesters........... 10
  59.     The Menu Requester...... 10.1
  60.     The (Sub)Item Requester. 10.2
  61.   The Generated Source...... 11
  62.   The GetFile Boopsi image.. 12
  63.   Adapt Font................ 13
  64.   Notes..................... 14
  65.   Credit.................... 15
  66.   __IMPORTANT__............. 16
  67.  
  68.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  69.  » 1) Disclaimer                                                           »
  70.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  71.  The author cannot be held liable for the  suitability or  accuracy  of this
  72.  manual  and/or  the  program(s)  it  describes.   Any  damage  directly  or
  73.  indirectly caused by the use or misuse of  this manual  and/or the  program
  74.  it describes is the sole responsibility of the user her/him self.
  75.  
  76.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  77.  » 2) Copyright/Distribution                                               »
  78.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  79.  GadToolsBox, (c) Copyright 1991,92 Jaba  Development.  All rights reserved.
  80.  This  program  is  FREEWARE  so  no financial  donations are required ( but
  81.  welcome ).  This   program   may  be  freely  distributed  as  long  as all
  82.  source  code,   documentation  and  executable(s)  remain unchanged and are
  83.  included  with the distribution.  Also no profit is to be made  by  selling
  84.  this  program. You may not charge more than  Fred Fish  does  for a  single
  85.  library disk.    When  you  use  this  program  on a  regular base  I would
  86.  appreciate  a postcard of your  home  town.  If  this  program  is used  to
  87.  create a  GadTools user interface  for  commercial  or  shareware  programs
  88.  I  would  appreciate  a  little  note   about  this  in  the  program  it's
  89.  documentation.  Commercial  distribution  is  NOT allowed  without  written
  90.  permission from the author.
  91.  
  92.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  93.  » 3) Electronic Distribution                                              »
  94.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  95.  It is allowed for non-commercial BBSs to distribute  an archive  with  only
  96.  the following files in it to save your users some  money when they  want to
  97.  download this program. NOTE: All files listed  below  MUST  be  distributed
  98.  together. None of the files listed below may be  distributed  on it's  own!
  99.  They may ofcourse be archived with LHarc or any other archiver.
  100.  
  101.     GadToolsBox             - Main Program
  102.     GadToolsBox.info        - Main Program icon.
  103.     GadToolsBox.DOC         - Main Program Manual (This file)
  104.     nofrag.library          - Shared library ( (c)1991,92 Jaba Development )
  105.     reqtools.library        -    "      "    ( (c) Nico François )
  106.     powerpacker.library     -    "      "    ( (c) Nico François )
  107.     boopsi.s                - Boopsi routine source
  108.     boopsi.o                - Boopsi routine link object code
  109.  
  110.  You may NOT upload this or any  other form of  this  software on  BBSs that
  111.  claim copyrights on the uploaded material!
  112.  
  113.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  114.  » 4) Introduction                                                         »
  115.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  116.  GadToolsBox  is a program that will save you a gigantic amount of time  and
  117.  anguish  in  creating  a  GadTools  user interface  for your programs. This
  118.  program is  a followup of  my other  source  generator  "PowerSource". It's
  119.  main purpose is to let you create  your user  interface without  having  to
  120.  type  in  the  necessary  code  and  structures  yourself.  This version of
  121.  GadToolsBox has the following features:
  122.  
  123.     -:  A complete intuition/gadtools user interface
  124.     -:  Editing on many different screen resolutions
  125.     -:  Editing/Generating source on/for big autoscrolling screens
  126.     -:  All GadTools gadget kinds supported + a custom gadget
  127.     -:  GadTools menus supported
  128.     -:  Full control over the window flags and most tags
  129.     -:  Editing IntuiTexts for the window
  130.     -:  Editing, loading and saving of colors (ILBM)
  131.     -:  Fully mouse and keyboard controled
  132.     -:  Generation of complete routines in either C or Assembly
  133.     -:  Generation of "RAW" Assembly source (No headers necessary)
  134.     -:  Generation of "static" data
  135.     -:  Binary saving for later loading and editing
  136.     -:  The possibilty to save powerpacker __CRUNCHED!__ binaries.
  137.     -:  The ability to print a status report.
  138.     -:  Multiple windows
  139.     -:  User selectable font
  140.     -:  The editing of "DRIPENS" (what gives OS 2.0 that special look)
  141.     -:  The possibility to change screen resolution while editing
  142.     -:  The possibility to edit "BevelBoxes"
  143.     -:  Editing in a user-definable grid
  144.     -:  The editing of minimal window border offsets
  145.     -:  Easy gadget alignment and spacing
  146.     -:  The generation of font-adaptable code
  147.     -:  etc. etc. etc........
  148.  
  149.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  150.  » 5) Requirements                                                         »
  151.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  152.  GadToolsBox was programmed with DICE C v2.06 (Thanks Matt) on an Amiga 2500
  153.  Kickstart  V37.175  Workbench  V37.67  with  7 MB  memory  +  ECS  +  A2630
  154.  accelerator card + 52 MB harddisk. It should however run happely on  a 1 MB
  155.  machine without a harddisk and special chips. It MUST have Kickstart  V37++
  156.  and Workbench  V37++.    A  C  Compiler  ( try registering DICE )    and/or
  157.  an  assembler with the  2.0  headers  can  also  come  in  handy  when  you
  158.  try to compile/assemble  the  generated  source.   Note  however  that  the
  159.  program can generate assembler source which does not require the headers to
  160.  assemble. The  nofrag.library must be copied in the libs: directory of your
  161.  boot  disk.   GadToolsBox  must   also  have  the  OS 2.0  version  of  the
  162.  ReqTools.library in the libs: directory of your  BOOT disk.  When  you also
  163.  have the V35++ version of the  PowerPacker.library in  the libs:  directory
  164.  GadToolsBox can save/load crunched binaries.
  165.  
  166.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  167.  » 6) Starting GadToolsBox                                                 »
  168.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  169.  You can start GadToolsBox from either the Shell or the Workbench.  To start
  170.  GadToolsBox from the Shell you must type the following:
  171.  
  172.     GadToolsBox [filename]
  173.  
  174.  Where filename is an optional name of a previously  created file  which you
  175.  want to edit. To  start  GadToolsBox  from  the  workbench  you must either
  176.  double-click the program it's icon or one of the ".G" icons.  When you have
  177.  started PowerSource without any arguments a window appears in the middle of
  178.  the screen. With this window you can select  the Screen  type on which  you
  179.  want to edit  the  GadTools  user  interface.  In this window  you will see
  180.  the following gadgets:
  181.  
  182.     Available modes     » In this gadget you see a list of available display
  183.                           modes.  Just click on the  desired  display  mode.
  184.                           NOTE: The program currently  only  checks  for the
  185.                                 availability of  the  LORES,  HIRES,  SUPER-
  186.                                 HIRES,  PRODUCTIVITY  and  A2024  modes  for
  187.                                 the PAL, NTSC, VGA and A2024 monitors.  Also
  188.                                 the interlace modes are supported except for
  189.                                 the A2024 modes because they do not  support
  190.                                 interlace. THE VGA AND A2024 MODES  MAY ONLY
  191.                                 BE USED WITH VGA/MULTISYNC OR A2024 MONITORS
  192.                                 USAGE OF THESE DISPLAY MODES  ON A  STANDARD
  193.                                 RGB MONITOR MAY RESULT IN  SERIOUS DAMAGE TO
  194.                                 THE MONITOR.
  195.  
  196.     Min. Width          » This gadgets shows the  minimum  width the  screen
  197.                           can have.
  198.  
  199.     Min. Height         » This gadgets shows the  minimum height the  screen
  200.                           can have.
  201.  
  202.     Max. Width          » This gadgets shows the  maximum  width the  screen
  203.                           can have.
  204.  
  205.     Max. Height         » This gadgets shows the  maximum height the  screen
  206.                           can have.
  207.  
  208.     Width               » In  this  gadget  you  can  type  the width of the
  209.                           screen you want to have.   NOTE:  This  cannot  be
  210.                           smaller/larger than the values described above.
  211.  
  212.     Height              » In  this  gadget  you  can type  the height of the
  213.                           screen you want to have.   NOTE:  This  cannot  be
  214.                           smaller/larger than the values described above.
  215.  
  216.     Depth               » This slider gadget  lets  you  adjust  the  screen
  217.                           depth. The screen depth  determines the  amount of
  218.                           available colors.
  219.  
  220.                           Depth = 1, Colors = 2
  221.                           Depth = 2, Colors = 4
  222.                           Depth = 3, Colors = 8
  223.                           Depth = 4, Colors = 16
  224.                           Depth = 5, Colors = 32
  225.  
  226.     OK                  » When this gadget is clicked the  program will  try
  227.                           to open the desired screen and start  the editing.
  228.  
  229.     CANCEL              » Clicking on this gadget will  quit when you got in
  230.                           this window  upon program  startup  or cancel  the
  231.                           operation when you got in this window by selecting
  232.                           "New" from the "Project" menu.
  233.  
  234.  If everything went OK you now see the selected screen with a little  window
  235.  on it.
  236.  
  237.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  238.  » 7) Making a Gadget                                                      »
  239.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  240.  To make a gadget is quite simple. Move the mouse pointer to the place where
  241.  you want the top-left of the gadget to be. Now click the left  mouse-button
  242.  once and move the mouse. You'll see a  box  which will  size  according  to
  243.  your mouse moves.  When the box  is  the size  you want it  click the  left
  244.  mouse button again. Now a window pops up  which  allows  you  to  edit  the
  245.  gadget kind specifics ( refer to the "Gadget Kind Requester" for more info)
  246.  After you have edited the gadget specifics click  on  OK and the  gadget is
  247.  on the window ready to be played around with.  NOTE: When you are  making a
  248.  CheckBox, Mx or GetFile gadget the box appears after the first mouse-click.
  249.  This is because these kinds of gadgets have a fixed size.
  250.  
  251.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  252.  » 8) Program Menus                                                        »
  253.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  254.  GadToolsBox  uses  a set  of menus  to let you  control  the  program.  The
  255.  following describes each menu and it's items.
  256.  
  257.  »»» 8.1) The Project Menu
  258.  
  259.  About............. This opens a little window  with some  information about
  260.                     the copyright, author and memory  status.  Just click on
  261.                     the Continue gadget to get rid of it.
  262.  
  263.  New............... Reset's the program to the default deleting every change
  264.                     made sofar. When there are changes  made  that  are  not
  265.                     saved yet the program asks for confirmation.  NOTE:  All
  266.                     windows currently in memory will be deleted by this!!!
  267.  
  268.  Load.............. This opens the  FileRequester  in  which  you can select
  269.                     the file you want to load.  The  program can  only  load
  270.                     binaries created by GadToolsBox.  Any other kind of file
  271.                     will simply be refused. NOTE: When a requester  pop's up
  272.                     telling you  that the  file uses a  monitor  that  isn't
  273.                     available it means  that  either you have not added  the
  274.                     monitor by clicking on the specific monitor icon in  the
  275.                     MonitorStore drawer  of your  Extras disk  or you  don't
  276.                     have the ECS chips installed.  If this is  the  case the
  277.                     program just opens a screen in the standard resolution.
  278.  
  279.  Save.............. This will  save  the  GadTools interface to  the default
  280.                     file name. NOTE:  The default name is "unnamed.g".  When
  281.                     the crunch  gadget  is  enabled  (Preferences)  and  the
  282.                     powerpacker.library  was  opened  successfully a  window
  283.                     opens indicating the crunch progress. In this window you
  284.                     see the following things:
  285.  
  286.                         Crunched       » This indicates  the  percentage  of
  287.                                          the file crunched sofar in a  human
  288.                                          readable form and a graphical form.
  289.  
  290.                         Saved          » This indicates  the  percentage  of
  291.                                          the  file  saved by  the  crunching
  292.                                          sofar in a human readable form  and
  293.                                          a graphical form.
  294.  
  295.                         Stop           » Clicking on this gadget  will  stop
  296.                                          the crunching. NOTE: The file  will
  297.                                          still be  saved  only  it  won't be
  298.                                          crunched.
  299.  
  300.  Save As........... This  opens  the  FileRequester in  which you can select
  301.                     the  path  and  file  name  under  which   the  GadTools
  302.                     interface is saved.
  303.  
  304.  Generate Source...
  305.     C.............. This opens the  FileRequester in  which  you  can select
  306.                     the path and  file  name  under  which  the  generated C
  307.                     source will be saved.
  308.  
  309.     Assembler...... The same as C only the generated source will be in 68000
  310.                     Assembler.
  311.  
  312.  Preferences....... This opens the preferences window.  In this  window  you
  313.                     will see the following gadgets:
  314.  
  315.                     Static Data        » When  this is switched  on  the  C
  316.                                          source  will only  contain  static
  317.                                          data and  routines.  The assembler
  318.                                          will not export (XDEF) any globals
  319.  
  320.                     RAW Asm source     » When  this  is  switched   on  the
  321.                                          Assembler source generated can  be
  322.                                          assembled   without  the   OS  2.0
  323.                                          headers.
  324.  
  325.                     Coordinates        » If you want  the  mouse coordinates
  326.                                          to  be   displayed  constantly  you
  327.                                          should switch this gadget on. NOTE:
  328.                                          The   displayed   coordinates   are
  329.                                          relative  to  the  top-left  corner
  330.                                          of the window.
  331.  
  332.                     Write Icon         » When  this  is  switched  on  every
  333.                                          binary written by  GadToolsBox  has
  334.                                          an icon to accompany it.
  335.  
  336.                     Gen. OpenFont      » When this  is  switched  on and the
  337.                                          used font is a diskfont the  source
  338.                                          generator  automatically  generates
  339.                                          code that  opens/closes  the  font.
  340.                                          NOTE:   This has no  efect  if  the
  341.                                          "Adapt. Font" option (see below) is
  342.                                          turned on.
  343.  
  344.                     GZZ Adjust         » When  this  is   switched  on   the
  345.                                          program automatically  will  change
  346.                                          the  gadget   positions   when  the
  347.                                          WFLG_GIMMEZEROZERO  flag is  set or
  348.                                          cleared.   When  it's  on  and  you
  349.                                          switch  the WFLG_GIMMEZEROZERO flag
  350.                                          on  or  off  the  gadget  and  text
  351.                                          positions  will  visibly  stay  the
  352.                                          same.
  353.  
  354.                     Close WBench       » This allows you to let the  program
  355.                                          try to close the  workbench  screen
  356.                                          uppon startup. NOTE:  When  this is
  357.                                          selected and  you  press  "Use" the
  358.                                          program will also try to close  the
  359.                                          workbench screen.
  360.  
  361.                     Crunch             » When this gadget is checked and the
  362.                                          powerpacker.library V35+  has  been
  363.                                          opened   successfully   the   saved
  364.                                          binaries will be crunched. This can
  365.                                          save upto 85% of the original size.
  366.  
  367.                     Speedup Buffer     » This cycle gadget allows you to set
  368.                                          the preferred speedup  buffer  that
  369.                                          should be used by  the  powerpacker
  370.                                          library to crunch the binary files.
  371.  
  372.                     Crunch Depth       » With this cycle gadget you  can set
  373.                                          the crunch depth to use.
  374.  
  375.                     Adapt. Font        » When  this gadget  is  checked  the
  376.                                          source   generator   will  generate
  377.                                          source  that  automatically  adapts
  378.                                          the  gadget,  bevel-box  and window
  379.                                          sizes and positions  to the  active
  380.                                          font.
  381.  
  382.                     Use Amiga.Lib      » When  this   is  switched  on   the
  383.                                          assembler source generator  creates
  384.                                          XDEFs to the  _LVO  table  from the
  385.                                          amiga.lib   instead  of   using the
  386.                                          constants normally generated.
  387.  
  388.                     Use SysFont        » When   this   is  switched  on  the
  389.                                          generated font adaptive source will
  390.                                          use the system default font instead
  391.                                          of the screen font.   Note that the
  392.                                          screen font can be  a  proportional
  393.                                          font.  The font adaptive code  does
  394.                                          not  always  have  a  pixel-perfect
  395.                                          result with proportional font's.
  396.  
  397.                     Overwrite          » With  this  switch  on  GadToolsBox
  398.                                          won't pop up the requester  telling
  399.                                          you that a file you want to save to
  400.                                          already exists.   Instead  it  will
  401.                                          overwrite the file immediatly.
  402.  
  403.                     ASL FReq           » When   this    is    switched    on
  404.                                          GadToolsBox   will   use  the   ASL
  405.                                          FileRequester which  enables you to
  406.                                          use the  "Magic File Requester" and
  407.                                          other  sorts  of  ASL  patches  you
  408.                                          desire.
  409.  
  410.                     Pragmas            » This   will   tell   the  C  Source
  411.                                          Generator  to  include  the  pragma
  412.                                          headers to.
  413.  
  414.                     Aztec C            » When you use the Aztec compiler you
  415.                                          _MUST_ turn this switch  on  before
  416.                                          source generation.   This will tell
  417.                                          GadToolsBox to  use a  special type
  418.                                          cast   in  the  generation  of  the
  419.                                          gadget tags.
  420.  
  421.                     Save               » Opens the  FileRequester  in  which
  422.                                          you can select the  path  and  name
  423.                                          under  which  the  preferences  are
  424.                                          saved.
  425.  
  426.                     Load               » Opens  the  FileRequester  in which
  427.                                          you   can   select   a  GadToolsBox
  428.                                          preferences file to load.
  429.  
  430.                     Use                » This tells GadToolsBox to  use  the
  431.                                          preferences you have set.
  432.  
  433.                     CANCEL             » This cancels the operation.
  434.  
  435.  Close Workbench... This will try to close the workbench screen so  that you
  436.                     can use the memory it took up. When this item reads Open
  437.                     Workbench it will try to open the Workbench screen again
  438.  
  439.  Quit.............. This will quit the program after asking for confirmation
  440.  
  441.  »»» 8.2) The Gadgets Menu
  442.  
  443.  In this menu some items will ask you to click a gadget to perform a  certain
  444.  action.  When  you  accidentally  activated one of those items you can abort
  445.  the  routine by pressing the  ESC  (Escape)  key  when  the  question "CLICK
  446.  GADGET.."  pops up  in the  screen  title  bar or  when you are dragging the
  447.  rubber-band box. When you create, move, size or  copy a gadget you can block
  448.  the X or Y movements by pressing the X or Y key whilst  the  rubber-band box
  449.  is displayed.   Pressing the X or Y key again will free the movements again.
  450.  As of version 37.119  GadToolsBox  also  uses  multiple selection of gadgets
  451.  with Moving, Copying, Editing and Deleting.  This multiple selection is very
  452.  easy. As soon  as the question in the ›title bar  asking  you to  select the
  453.  gadgets pops up you must click on the gadgets you want to move, copy, delete
  454.  or edit. Gadgets which are selected for the operation have a highlighted box
  455.  drawed around them. Pressing the F1 key will  confirm the  selected  gadgets
  456.  and the operation will be done on those gadgets.   Pressing the ESC key will
  457.  abort the whole operation.  Also during the selection you  can press  'A' to
  458.  select all gadgets and 'SHIFT+A' to de-select all gadgets.
  459.  
  460.  Kind.............. This item has the  program  supported  gadget  kinds  as
  461.                     sub-items attached to it. Selecting  any of  these  sub-
  462.                     items will change the editing  for  that  gadget   kind.
  463.                     The first kind "GETFILE" is  a  custom  gadget which  is
  464.                     the same as the gadget which you find in the  "Fountain"
  465.                     program left of the filename gadgets. This gadget should
  466.                     be used to let the user open the FileRequester to select
  467.                     the file/path instead of typing it in the string gadget.
  468.  
  469.  Move a gadget..... This asks you to click on the gadgets you want to  move.
  470.                     When you click on a gadget a box  is drawed  around  it.
  471.                     When you click on it again the box will disappear.   All
  472.                     "boxed" gadgets will be moved.   When you press F1 a box
  473.                     surrounding all selected gadgets will appear.  Just move
  474.                     the box to where you want it and click on the left mouse
  475.                     button to confirm the place.
  476.  
  477.  Size a gadget..... This asks you to click on the gadget  that you  want  to
  478.                     re-size. When you click on a  gadget  a  box  is  drawed
  479.                     around the gadget. Just move  the mouse  to  adjust  the
  480.                     size of the box and click  on the  left  mouse-button to
  481.                     confirm  the  size.  NOTE:  The  minimum  possible  size
  482.                     depends on the gadget kind and the font size.
  483.  
  484.  Copy a gadget..... This ask you to click on the  gadgets you want  to copy.
  485.                     Clicking on a  gadget  you want to copy will draw  a box
  486.                     around the gadget.   Clicking on the  gadget again  will
  487.                     remove the box again. All "boxed" gadgets will be copied
  488.                     When you press F1 a box surrounding all selected gadgets
  489.                     will appear which  you must  drag  to it's  place.  Just
  490.                     click on the left  mouse-button to  confirm  it's place.
  491.  
  492.  Delete a gadget... This  asks  you  to  click  on the  gadgets  you want to
  493.                     delete. When you press F1 all selected  gadgets will  be
  494.                     removed and deallocated.
  495.  
  496.  Edit a gadget..... This  asks you to click on the gadgets you want to edit.
  497.                     When you press F1 all  selected gadgets  will popup  the
  498.                     edit window of the specific gadget in which you can edit
  499.                     the gadget it's specific data.   Please  refer  to   the
  500.                     "Gadget  Kind  Requester" chapter  for  more information
  501.                     about these windows.
  502.  
  503.  Join.............. This first asks you to click on a  ListView  gadget  you
  504.                     want to join. Then the program asks you to click on  the
  505.                     string gadget you want to join with the ListView gadget.
  506.                     Then the routine joins the  two gadgets  together.  This
  507.                     joining means that the String gadget will be filled with
  508.                     the  entry  name of a  clicked  entry  in  the  ListView
  509.                     gadget. NOTE:  Due to a bug (or something)  the GadTools
  510.                     library requires the String Gadget  to  be  of  the same
  511.                     Width as the ListView gadget. This is done automatically
  512.                     by  the  program  and  it  cannot  be  stopped.     Also
  513.                     the  GadTools  library  will  force  the  string  gadget
  514.                     directly  below  the  ListView gadget.  This also cannot
  515.                     be stopped.
  516.  
  517.  Split............. This will ask you to click on a Joined gadget.  Now  you
  518.                     can click either  the  joined  ListView  gadget  or  the
  519.                     joined String Gadget and they will be split. NOTE: After
  520.                     the Gadgets has been split the string Gadget  returns to
  521.                     the place where it has been originally drawn.
  522.  
  523.  Align Left........ This asks you to click on the gadget that has  the  left
  524.                     edge you want other gadgets to have. When you click on a
  525.                     gadget the program asks you to select the  gadgets  that
  526.                     must get the same left-edge of the  gadget  you  clicked
  527.                     first. Each time you click on a gadget the  gadget  will
  528.                     get a box drawn around it. When you click it  again  the
  529.                     box will disappear again. When the box is there it means
  530.                     that the gadget will be aligned.   When you are done you
  531.                     can  either press  ESC  to cancel or F1 to confirm. When
  532.                     F1 is pressed  all  gadget you have  selected  to  align
  533.                     will have the same left-edge.
  534.  
  535.  Align Right....... The same as "Align Left"  only the gadget  right-edge is
  536.                     used to align the gadgets.
  537.  
  538.  Align Top......... The same as "Align Left"  only  the  gadget  top-edge is
  539.                     used to align the gadgets.
  540.  
  541.  Align Bottom...... The same as "Align  Left" only the gadget bottom-edge is
  542.                     used to align  the gadgets. NOTE: This may not work  for
  543.                     ListView and Palette gadgets because GadTools sizes this
  544.                     gadget in the area given by you when first drawed.  This
  545.                     means that the gadget is almost always smaller than  you
  546.                     have drawn it.
  547.  
  548.  Close Size........ This does the same  as the  "Align"  routines  mensioned
  549.                     above  only  this  time  it  will  clone the size of the
  550.                     gadget. The MX, CHECKBOX and GETFILE  gadgets  will  not
  551.                     be affected by this. Only gadgets of the same  kind   as
  552.                     the first gadget clicked will  be  re-sized.  All  other
  553.                     gadgets you clicked will not be re-sized.
  554.  
  555.  Set X Spacing..... This will pop up a requester in which you  can  set  the
  556.                     size in pixels of the horizontal spacing of the gadgets.
  557.                     When the number has been entered you must  click  on the
  558.                     gadgets which must have the  spacing  requested.    Just
  559.                     press "F1" to confirm and "ESC" to cancel.
  560.  
  561.  Set Y Spacing..... The same  as  with  "Set X Spacing"  only  the  vertical
  562.                     positions are affected.
  563.  
  564.  »»» 8.3) The Window Menu
  565.  
  566.  New Window........ This will add a new window to  the  windows  already  in
  567.                     memory. NOTE:  Only the  currently  selected  window  is
  568.                     visible on the screen.
  569.  
  570.  Delete Window..... This will pop-up a window in which you must  select  the
  571.                     window you want to delete. The following gadgets  are in
  572.                     the window.
  573.  
  574.                     ListView gadget   » This  gadget   lists   the   windows
  575.                                         currently in memory. Just select the
  576.                                         name  of  the  window  you  want  to
  577.                                         delete.
  578.  
  579.                     OK                » Clicking on this gadget will  delete
  580.                                         the selected  window  including  all
  581.                                         gadgets, menus, texts and boxes that
  582.                                         where attached to it.
  583.  
  584.                     CANCEL            » This will cancel the operation.
  585.  
  586.  Other Window...... This brings up the  window-selector again  in which  you
  587.                     can select the window you want to edit.
  588.  
  589.  Edit Data......... This brings up a small requester  in which  you can  set
  590.                     some data for the current window. In the  requester  the
  591.                     follwing gadgets can be found:
  592.  
  593.                     Project name     » In  this  gadget  you  can  give  the
  594.                                        window a name. You  should  name  all
  595.                                        windows so  it's  easy to  keep  them
  596.                                        appart.  NOTE: This name  is used  by
  597.                                        the source generator.
  598.  
  599.                     Start ID from    » In  this  gadget  you  can  type  the
  600.                                        GadgetID  from  which  you  want  the
  601.                                        program to start  numbering the  ID's
  602.                                        of the gadgets. This can come in very
  603.                                        handy  if  you plan  to make  windows
  604.                                        that share a global IDCMP port.
  605.  
  606.                     Min X Size       » In these gadgets  you  can  type  the
  607.                     Min Y Size       » minimum/maximum dimensions  that  the
  608.                     Max X Size       » can  be  sized  to  with  the  sizing
  609.                     Max Y Size       » gadget.   The  program  will  try  to
  610.                                        prevent  you  from   entering   wrong
  611.                                        dimensions.  NOTE: The tags for these
  612.                                        positions will only be generated when
  613.                                        the window has a sizing gadget.
  614.  
  615.                     OK               » This will set the desired changes.
  616.  
  617.                     CANCEL           » This will cancel the operation.
  618.  
  619.  Print Info........ This will open the Project Selection window  again.  Now
  620.                     you can select the project of  which you  want to  print
  621.                     the  information  or  click  on  OK  right away to get a
  622.                     printout of all projects.  In the  printout  the  gadget
  623.                     id's, gadget array constants, number  of gadgets  kinds,
  624.                     number of menus,  number  of  texts  and the  number  of
  625.                     BevelBoxes are listed.   GadToolsBox first checks to see
  626.                     if your printer is online and has paper before it starts
  627.                     to print the projects. Note however that the  this check
  628.                     only works with parallel printers.
  629.  
  630.  Edit Flags........ This opens a requester in  which  all window  flags  are
  631.                     listed using CheckBox gadgets. Just (de)select the flags
  632.                     you want. Clicking on OK will set these flags and CANCEL
  633.                     cancels  the  operation.   NOTE:  Only  the  SIZEGADGET,
  634.                     DRAGBAR,     DEPTHGADGET,    CLOSEGADGET,    SIZEBRIGHT,
  635.                     SIZEBBOTTOM,  GIMMEZEROZERO,   BORDERLESS  and  BACKDROP
  636.                     flags are (un)set on  the edit  window. The rest  of the
  637.                     flags will  only turn up in  the  generated source code.
  638.                     NOTE: When you set the WFLG_BACKDROP flag in the  window
  639.                           The program will automatically re-size the  window
  640.                           to the same size as the current screen.    You can
  641.                           switch the size gadget on or off by  pressing  the
  642.                           F10 key while editing.
  643.  
  644.  Edit IDCMP........ This opens a requester in which all window  IDCMP  flags
  645.                     are listed using CheckBox gadgets.  Just  (de)select the
  646.                     flags you want. Clicking on OK will set these flags  and
  647.                     CANCEL  cancels  the  operation.   NOTE:   The  GadTools
  648.                     specific  IDCMP  flags  will  always be set according to
  649.                     the kind of gadgets on the window.
  650.  
  651.  Edit Tags......... This will open a window in  which  some  special  window
  652.                     tags can  be  edited.  In  the  window  you'll  see  the
  653.                     following  gadgets:
  654.  
  655.                     InnerWidth   » When   this   gadget   is  selected   the
  656.                                    generated    source    will    use    the
  657.                                    WA_InnerWidth Tag instead of the WA_Width
  658.                                    Tag. The value next to the gadget  is the
  659.                                    current window InnerWidth.
  660.  
  661.                     InnerHeight  » When   this   gadget   is  selected   the
  662.                                    generated    source    will    use    the
  663.                                    WA_InnerHeight   Tag   instead   of   the
  664.                                    WA_Height Tag.  The  value  next  to  the
  665.                                    gadget is the current window InnerHeight.
  666.  
  667.                     MouseQueue   » When this gadget is  selected the  source
  668.                                    will contain the  WA_MouseQueue  tag.  In
  669.                                    the  integer  gadget  next to this gadget
  670.                                    you can type the  amount of MouseQueue's.
  671.                                    NOTE: This value cannot be smaller than 1
  672.  
  673.                     RptQueue     » When this gadget is  selected the  source
  674.                                    will contain the  WA_RptQueue tag. In the
  675.                                    integer gadget  next  to  this gadget you
  676.                                    can type the amount of RptQueue's.  NOTE:
  677.                                    This value cannot be smaller than 1.
  678.  
  679.                     AutoAdjust   » Selecting this will cause  the  generated
  680.                                    source to contain the  WA_AutoAdjust tag.
  681.  
  682.                     Zoom         » When this gadget is selected the  WA_Zoom
  683.                                    Tag is generated in the source  code.  In
  684.                                    the Left, Top, Width, Height gadgets  you
  685.                                    can  type  the   Window  it's   alternate
  686.                                    positions.   NOTE:  This  gadget  is only
  687.                                    enabled when the window sizing  gadget is
  688.                                    turned off. This can be done in the "Edit
  689.                                    Flags" requester.
  690.  
  691.                     Default Zoom » This will tell  GadToolsBox  to  generate
  692.                                    source   that  will  calculate  the  zoom
  693.                                    positions at run time. The Zoom positions
  694.                                    will be the same as  the  Zoom  positions
  695.                                    of the preferences programs.   NOTE: This
  696.                                    gadget is  only enabled  when the  window
  697.                                    sizing gadget is turned off.  This can be
  698.                                    done in the "Edit Flags" requester.
  699.  
  700.                     WindowTitle  » Type the Window title  in here.  If  this
  701.                                    Gadget is empty the WA_Title tag will not
  702.                                    be generated.
  703.  
  704.                     ScreenTitle  » Type the  Screen title in  here. If  this
  705.                                    Gadget is  empty the  WA_ScreenTitle  tag
  706.                                    will not be generated.
  707.  
  708.                     OK           » This will set  the  desired  changes  and
  709.                                    resume to editing.
  710.  
  711.                     CANCEL       » This will cancel the operation.
  712.  
  713.  Edit Grid......... This will open a window to edit the grid size. The grid,
  714.                     which is invisible, is used to let the gadgets be  moved
  715.                     and sized with a specific amount of pixels at  the time.
  716.                     This  can be VERY useful to  get your  gadgets the  same
  717.                     size and in line with eachother. If you for example have
  718.                     both the X and Y grid spacings on 4 the gadget-box  will
  719.                     size/move 4 pixels at the time but only  when the  mouse
  720.                     has moved four pixels from it's  previous  position.  If
  721.                     this sounds a bit confusing  you should  try it  out. It
  722.                     makes  it  a  hell  of a  lot  easier to  place/size the
  723.                     gadgets on the right spot.  In the grid window  you will
  724.                     see the following gadgets:
  725.  
  726.                     Grid X Size       :  Type the X spacing of  the grid  in
  727.                                          here. NOTE:  This may not  be  less
  728.                                          than 2 or more than 100.
  729.  
  730.                     Grid Y Size       :  Type the Y spacing of  the grid  in
  731.                                          here. NOTE:  This may not  be  less
  732.                                          than 2 or more than 100.
  733.  
  734.                     Grid On           :  When  this  gadgets is checked  the
  735.                                          grid is switched  on.
  736.  
  737.                     OK                :  Clicking on  this gadget  will  set
  738.                                          the desired grid changes.
  739.  
  740.                     CANCEL            :  This will cancel the  operation.
  741.  
  742.                     NOTE:  When the grid is switched on  all coordinates are
  743.                            updated according to the grid sizes!
  744.  
  745.  Edit Offsets...... This will open a window to edit the border offsets.  The
  746.                     border offsets are used to create a working space within
  747.                     the window borders. This means that if you have set  the
  748.                     horizontal offset to 4 and the vertical offset to 2  the
  749.                     gadgets cannot be moved/sized  closer than  4 pixels  to
  750.                     the window left and right borders and not closer  than 2
  751.                     pixels to the window top and bottom borders.
  752.  
  753.                     Horiz. offset     :  Type the offset in pixels you  want
  754.                                          to have  from the  left  and  right
  755.                                          window borders here. NOTE: This may
  756.                                          not be less than 0 or more than 20.
  757.  
  758.                     Vert. offset      :  Type the offset in pixels you  want
  759.                                          to have from  the  top  and  bottom
  760.                                          window borders here. NOTE: This may
  761.                                          not be less than 0 or more than 20.
  762.  
  763.                     Offset On         :  When  this  gadgets is checked  the
  764.                                          offsets are switched  on.
  765.  
  766.                     OK                :  Clicking on  this gadget  will  set
  767.                                          the desired offset changes.
  768.  
  769.                     CANCEL            :  This will cancel the  operation.
  770.  
  771.  Texts.............
  772.      Add a text.... This will open the  IntuiText  editor  window.  In  this
  773.                     window you'll find the following gadgets:
  774.  
  775.                     Enter Text   » In this gadget you must  type the  actual
  776.                                    text you want.
  777.  
  778.                     JAM1
  779.                     JAM2
  780.                     COMPLEMENT
  781.                     INVERSVID    » These four gadgets determine the drawmode
  782.                                    used to paint the text in the rastport.
  783.  
  784.                     FrontPen     » With this palette gadget  you can  select
  785.                                    the FrontPen (text) color  which is  used
  786.                                    to draw the text.
  787.  
  788.                     BackPen      » With this palette gadget  you can  select
  789.                                    the BackPen (background)  color  which is
  790.                                    used to draw the text.
  791.  
  792.                     OK           » This gadget will close the window and let
  793.                                    you position the text in the edit window.
  794.                                    Clicking on  the left  mouse-button  will
  795.                                    confirm the place.
  796.  
  797.                     CANCEL       » This will cancel the operation.
  798.  
  799.                     Now you must move the text with mouse to where you  want
  800.                     it and click the left mouse-button.  To get your text in
  801.                     The middle of the window horizontally you must move  the
  802.                     text to the vertical position you want it and  press the
  803.                     F1 key. Then the text will bo moved to the center of the
  804.                     window.
  805.  
  806.      Modify a text. This will put up the text selection window if  there was
  807.                     more than one text added. In this text selection  window
  808.                     you'll see the following gadgets:
  809.  
  810.                     Available Texts » In  this  ListView  gadget  the  texts
  811.                                       currently   in   memory   are  listed.
  812.                                       Clicking on the text will select it.
  813.  
  814.                     OK              » This will  select  the  text  for  the
  815.                                       operation that has to be done.
  816.  
  817.                     CANCEL          » This will cancel the operation.
  818.  
  819.                     Now the IntuiText Editor opens  with the  selected  text
  820.                     already  in it.  Now you can edit  the text the  way you
  821.                     want.
  822.  
  823.      Delete a text. This will put up the text selector  again if  more  than
  824.                     one text is added to the  window.  Just select  the text
  825.                     and it's gone. NOTE: When only one text is available the
  826.                     text is deleted immediately.
  827.  
  828.      Move a text... The text selector pops up again if.... Now you can  move
  829.                     the text around in the edit window.  Just  click on  the
  830.                     left mouse-button to  confirm it's  new  place.  You can
  831.                     center it with F1 ofcourse (see Add a text).
  832.  
  833.  BevelBoxes........
  834.     Add BevelBox... When this item has been selected  the  program will  ask
  835.                     you to click on the place where you  want  the  top-left
  836.                     corner of the BevelBox. When clicked you can drag a  box
  837.                     just like when you are editing gadgets.  Just  click  on
  838.                     the left mouse button again to confirm  that the  box is
  839.                     the way you want it.    NOTE:  By  default  the  box  is
  840.                     "raised".  Look at the  "Flip BevelBox" item  to get  it
  841.                     "recessed."
  842.  
  843.     Move BevelBox.. This works the same as moving a gadget.
  844.  
  845.     Size BevelBox.. This works the same as sizing a gadget.
  846.  
  847.     Delete BevelBox This works the same as deleting a gadget.
  848.  
  849.     Flip BevelBox.. By default all created BevelBoxes are  "raised".  To get
  850.                     a BevelBox "recessed" you must select this item and then
  851.                     ( when  the  program  asks  you to )  click  inside  the
  852.                     box and it will be recessed.
  853.  
  854.  »»» 8.4) The Screen Menu
  855.  
  856.  Palette........... This will open the palette editor. In the palette editor
  857.                     you'll see the following gadgets:
  858.  
  859.                     Red         » With this slider gadget you can adjust the
  860.                                   Red intensity  of the  currently  selected
  861.                                   color.
  862.  
  863.                     Green       » With this slider gadget you can adjust the
  864.                                   Green intensity of the currently  selected
  865.                                   color.
  866.  
  867.                     Blue        » With this slider gadget you can adjust the
  868.                                   Blue intensity of the  currently  selected
  869.                                   color.
  870.  
  871.                     Colors      » This gadget consists of 2, 4, 8, 16 or  32
  872.                                   colored gadgets and a color indicator left
  873.                                   of it. Just click on the color you want to
  874.                                   edit to switch to editing that color.
  875.  
  876.                     OK          » This will close the Palette editor and set
  877.                                   the desired colors on the edit screen.
  878.  
  879.                     Load        » This opens the file requester in which you
  880.                                   can select the  name of an  IFF-ILBM  file
  881.                                   from which you wish to load the colors.
  882.  
  883.                     Save        » This opens the file requester in which you
  884.                                   can select  a name.  The  selected  colors
  885.                                   will then  be saved  to an  IFF-ILBM file.
  886.                                   The generated IFF-ILBM file is  compatible
  887.                                   with DPaint IV it's palette files.
  888.  
  889.                     Reset       » This will reset all  colors to  what  they
  890.                                   where before the palette editor opened.
  891.  
  892.                     CANCEL      » This will first reset all colors  and then
  893.                                   exit the palette editor.
  894.  
  895.  Get Font.......... This will  open the  FontSelector  for  you  to select a
  896.                     new font. To select a font you must first  click  on the
  897.                     desired font name and then enter or click on the desired
  898.                     font height. Clicking on Ok  will set the  font  on  the
  899.                     screen and clicking on Cancel will cancel the operation.
  900.                     NOTE: When the "Adapt. Font" switch  in the  Preferences
  901.                     window is switched on then this item cannot be selected.
  902.  
  903.  Set DriPens....... This will open the DriPen editor.  DriPens are the  pens
  904.                     which the system uses to  give that  special new  OS 2.0
  905.                     look  to  the  window  and  gadgets etc.  The  following
  906.                     gadgets are in the DriPen editor:
  907.  
  908.                     Pens        » This cycle gadget is  used to  select  the
  909.                                   DriPen you want  to  edit.  The  following
  910.                                   DriPens are available:
  911.  
  912.                                   DETAILPEN
  913.                                       This  is  the  same  as  the  standard
  914.                                       NewScreen detailpen.
  915.  
  916.                                   BLOCKPEN
  917.                                       This  is  the  same  as  the  standard
  918.                                       NewScreen blockpen.
  919.  
  920.                                   TEXTPEN
  921.                                       This is  the  pen  used  to  draw  the
  922.                                       gadget text and the Window title.
  923.  
  924.                                   SHINEPEN
  925.                                       This is  the  pen  used  to  draw  the
  926.                                       "light-side" of the gadget and  window
  927.                                       borders.
  928.  
  929.                                   SHADOWPEN
  930.                                       This is  the  pen  used  to  draw  the
  931.                                       "dark-side"  of the gadget and  window
  932.                                       borders.
  933.  
  934.                                   FILLPEN
  935.                                       This is the pen used to  backfill  the
  936.                                       gadget  when  it's  clicked   and  the
  937.                                       window border when it's active.
  938.  
  939.                                   FILLTEXTPEN
  940.                                       This is the pen used to draw the  text
  941.                                       of a clicked  gadget  and  the  Window
  942.                                       title of an active window.
  943.  
  944.                                   BACKGROUNDPEN
  945.                                       This   pen  is   used   to   fill  the
  946.                                       background of an unselected gadget.
  947.  
  948.                                   HIGHLIGHTTEXTPEN
  949.                                       This pen is used to draw the text of a
  950.                                       gadget   with   the  HighLight  switch
  951.                                       turned on.
  952.  
  953.                     Palette     » This gadgets contains the current   screen
  954.                                   colors. Clicking on a color  will set  the
  955.                                   currently displayed  DriPen  in the  Cycle
  956.                                   gadget to that colors.
  957.  
  958.                     OK          » Clicking  on  this  gadget  will  set  the
  959.                                   desired DriPens.
  960.  
  961.                     CANCEL      » This will cancel the operation.
  962.  
  963.  Edit Tags......... This will open the screen tags  window.  In  this window
  964.                     the following gadgets are located:
  965.  
  966.                     AutoScroll  » With this  gadget  checked  the  generated
  967.                                   source will contain the SA_AutoScroll tag.
  968.  
  969.                     Type        » This cycle gadget has the supported screen
  970.                                   types in it:
  971.  
  972.                                   CUSTOMSCREEN
  973.                                        The generated source will contain the
  974.                                        screen tags and data. The window will
  975.                                        use this screen to open on.
  976.  
  977.                                   WBENCHSCREEN
  978.                                        The generated source will not contain
  979.                                        the screen tags and data.  The window
  980.                                        will use the Workbench screen to open
  981.                                        on.
  982.  
  983.                                   CUSTOMSCREEN
  984.                                        The generated source will not contain
  985.                                        the screen tags and data.  The window
  986.                                        will use the default public screen to
  987.                                        open on.
  988.  
  989.                     Title       » In this  string  gadget you  can type  the
  990.                                   title of the screen when no windows on the
  991.                                   screen  are  activated.  NOTE:  When  this
  992.                                   gadget   is  empty  the  Tag  will  no  be
  993.                                   generated in the source.
  994.  
  995.                     OK          » This will set the desired tags.
  996.  
  997.                     CANCEL      » This will cancel the operation.
  998.  
  999.  Change Type....... This will pop up the Screen Type requester (See Starting
  1000.                     GadToolsBox) which enables you to change the  screen you
  1001.                     are working on. NOTE: When you have (for example) edited
  1002.                     gadgets on a hires screen and you change the  resolution
  1003.                     to a lores screen the gadgets that  are located  outside
  1004.                     the lores  screen  range (gadget left-edge > 320) cannot
  1005.                     be reached anymore (unless you switch back to the  hires
  1006.                     screen ofcourse)!
  1007.  
  1008.  »»» 8.5) The Menus Menu
  1009.  
  1010.  Edit Menus........ This will open the Menu Editor  window in which  you can
  1011.                     edit   a   complete  menu-strip.   Refer  to  the  "Menu
  1012.                     Requesters" chapter for more information.
  1013.  
  1014.  Test Menus........ This will setup the menus,  items  and  subitems  to  be
  1015.                     tested by you. When the message "TESTING MENUS!  ESC  TO
  1016.                     QUIT..." is printed  in  the  screen title  bar you  can
  1017.                     browse  through  the  menus  like  you  normally do. You
  1018.                     should press the ESC (escape) key to resume to editing.
  1019.  
  1020.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1021.  » 9) Gadget Kind Requester                                                »
  1022.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1023.  GadToolsBox supports all gadget kinds which all have their  own  window  in
  1024.  which the gadget kind specifics can be edited. The following gadgets can be
  1025.  found in nearly all  gadget  kind  requesters  and are  there  for the same
  1026.  reason:
  1027.  
  1028.  Text           » In this gadget you can type the  text which  is  displayed
  1029.                   with the gadget.
  1030.  
  1031.  Label          » In this gadget you can type the source code label which is
  1032.                   used to define  some  important  values  in the  generated
  1033.                   source. Refer to the "Generated Source"  chapter  for more
  1034.                   information.
  1035.  
  1036.  Underscore     » When  this  gadget  is  selected   the  character  in  the
  1037.                   GadgetText preceeded  by a '_' will  be  underlined  which
  1038.                   specifies the keyboard shortcut.
  1039.  
  1040.  Disabled       » When this gadget is selected the gadget will be  disabled.
  1041.                   The gadget will only be disabled in the  generated source.
  1042.                   NOTE: Not all gadgets support this switch.
  1043.  
  1044.  High Label     » This tells that  the  GadgetText  must  be  drawn  in  the
  1045.                   highlight text color. NOTE Not  all  gadgets  support this
  1046.                   switch.
  1047.  
  1048.  Text Place     » This cycle gadget  determines  where that  gadget  text is
  1049.                   placed. The possibilities are IN, LEFT,  RIGHT,  ABOVE and
  1050.                   BELOW. NOTE: Only the Button gadget supports IN.
  1051.  
  1052.  OK             » This  gadget  will  add  the  gadget  with   the  selected
  1053.                   specifics to the edit window or set the desired changes.
  1054.  
  1055.  CANCEL         » This will cancel the operation.
  1056.  
  1057.  Following is a description of the extra specifics  of the  different gadget
  1058.  kinds supported by GadToolsBox.
  1059.  
  1060.  »»» 9.1) The CheckBox Gadget
  1061.  
  1062.  Checked       » When this gadget is switched on it tells that the gadget is
  1063.                  checked by default.
  1064.  
  1065.  »»» 9.2) The Integer Gadget
  1066.  
  1067.  ExitHelp      » When this gadget  is  selected  you  will  get  a  GADGETUP
  1068.                  message with 0x5F as  code to indicate  that the  user  has
  1069.                  presed the HELP key in the gadget.
  1070.  
  1071.  TabCycle      » When this gadget is selected the integer gadget will  cycle
  1072.                  to the next/previous  integer/string gadget  when the  user
  1073.                  presses TAB or SHIFT+TAB.
  1074.  
  1075.  MaxChars      » You must type the maximum possible digits plus one that may
  1076.                  be typed in the gadget. NOTE: This cannot be smaller than 2
  1077.  
  1078.  Number        » Type the default number in this gadget  that the  resulting
  1079.                  gadget has in it.
  1080.  
  1081.  »»» 9.3) The ListView Gadget
  1082.  
  1083.  Read Only     » When this gadget is selected the  ListView  Gadget  will be
  1084.                  read-only. NOTE: The ListView will only be read-only in the
  1085.                  generated source.
  1086.  
  1087.  ShowSelected  » When this gadget is selected the active (clicked)  entry in
  1088.                  the listview gadget will be shown below the listview gadget
  1089.                  NOTE: This option is only available  if the ListView  isn't
  1090.                  ReadOnly.
  1091.  
  1092.  Spacing       » Type the  extra  number  of  pixels  GadTools  must  insert
  1093.                  between the listview entries. NOTE: This  value  cannot  be
  1094.                  smaller than 0.
  1095.  
  1096.  Scr. Width    » Type the width of the scroller gadget next to the  ListView
  1097.                  gadget in here. NOTE: This value may not be smaller than 16
  1098.  
  1099.  Labels        » This is a ListView Gadget combined with a string gadget. In
  1100.                  the  string  gadget  you can  type  the  entries  that  the
  1101.                  listview must have. To edit an entry you  must first  click
  1102.                  on the entry in the listview and then edit the entry in the
  1103.                  string  gadget.  NOTE:  The  "!!ACTION GADGET!!"  entry  is
  1104.                  always in the list and cannot  be removed  or edited.  This
  1105.                  entry is necessary to keep the ListView  selectable  in the
  1106.                  program. This entry will ofcourse not showup in  the source
  1107.                  generated.
  1108.  
  1109.  ^ Remove ^    » This gadget enables you to remove  entries  from the  list.
  1110.                  Just click on the entry in the ListView gadget and  then on
  1111.                  this gadget and the entry is gone.
  1112.  
  1113.  »»» 9.4) The Mx Gadget
  1114.  
  1115.  Spacing       » In this gadget you can  type the  spacing  in  pixels  that
  1116.                  GadTools should insert between the items of the  MX gadget.
  1117.  
  1118.  Labels        » This is a ListView Gadget combined with a string gadget. In
  1119.                  the  string  gadget  you can  type  the  entries  that  the
  1120.                  mx must have.  To  edit  an  entry  you  must  first  click
  1121.                  on the entry in the listview and then edit the entry in the
  1122.                  string  gadget.  NOTE:  You must enter atleast two  entries
  1123.                  for the MX gadget.
  1124.  
  1125.  ^ Remove ^    » This gadget enables you to remove  entries  from the  list.
  1126.                  Just click on the entry in the ListView gadget and  then on
  1127.                  this gadget and the entry is gone.
  1128.  
  1129.  »»» 9.5) The Cycle Gadget
  1130.  
  1131.  Labels        » This is a ListView Gadget combined with a string gadget. In
  1132.                  the  string  gadget  you can  type  the  entries  that  the
  1133.                  cycle must have.  To edit an  entry you  must  first  click
  1134.                  on the entry in the listview and then edit the entry in the
  1135.                  string  gadget.  NOTE:  You must enter atleast two  entries
  1136.                  for the Cycle gadget.
  1137.  
  1138.  ^ Remove ^    » This gadget enables you to remove  entries  from the  list.
  1139.                  Just click on the entry in the ListView gadget and  then on
  1140.                  this gadget and the entry is gone.
  1141.  
  1142.  »»» 9.6) The Palette Gadget
  1143.  
  1144.  Width         » In  this  gadget  you  can  type  the  width  of  the color
  1145.                  indicator if you want one on the left of the gadget.  NOTE:
  1146.                  any value smaller than 9 will indicate that you do not want
  1147.                  a color indicator.
  1148.  
  1149.  Height        » In  this  gadget  you  can  type  the height  of  the color
  1150.                  indicator if you want one above the gadget. NOTE: any value
  1151.                  smaller than 9 will indicate that you  do not  want a color
  1152.                  indicator.
  1153.  
  1154.  »»» 9.7) The Scroller Gadget
  1155.  
  1156.  Immediate     » When   this   gadget  is   selected   you   will  hear  any
  1157.                  IDCMP_GADGETDOWN message through the window IDCMP port that
  1158.                  this gadget generates.
  1159.  
  1160.  RelVerify     » When   this   gadget  is   selected   you   will  hear  any
  1161.                  IDCMP_GADGETUP  message  through the window IDCMP port that
  1162.                  this gadget generates.
  1163.  
  1164.  Horizontal
  1165.  Vertical      » With this gadget you can determine whether this  gadget can
  1166.                  be moved horizontally or vertically.
  1167.  
  1168.  Top           » In this gadget  you  can  type  the  top  of the  area  the
  1169.                  scroller is used for.
  1170.  
  1171.  Total         » In this gadget you  can  type  the  total  of  the area the
  1172.                  scroller is used for.
  1173.  
  1174.  Visible       » In this gadget you  can type  the visible  part of the area
  1175.                  this scroller is used for.
  1176.  
  1177.  Arrows        » In this gadget you can type the size in pixels of an arrow.
  1178.                  NOTE: Specifying  a  value smaller  than 8  says you  don't
  1179.                  want arrows.
  1180.  
  1181.  »»» 9.8) The Slider Gadget
  1182.  
  1183.  Immediate     » When   this   gadget  is   selected   you   will  hear  any
  1184.                  IDCMP_GADGETDOWN message through the window IDCMP port that
  1185.                  this gadget generates.
  1186.  
  1187.  RelVerify     » When   this   gadget  is   selected   you   will  hear  any
  1188.                  IDCMP_GADGETUP  message  through the window IDCMP port that
  1189.                  this gadget generates.
  1190.  
  1191.  Horizontal
  1192.  Vertical      » With this gadget you can determine whether this  gadget can
  1193.                  be moved horizontally or vertically.
  1194.  
  1195.  Min           » In this gadget you can type the minimum value of the slider.
  1196.  
  1197.  Max           » In this gadget you can type the maximum value of the slider.
  1198.  
  1199.  Level         » In this gadget you can  type the  initial level  the slider
  1200.                  must have.
  1201.  
  1202.  Level Size    » In  this   gadget  you  can  type  the  maximum  amount  of
  1203.                  characters that may be used to print the slider level.
  1204.  
  1205.  Format        » A formatting string ala RawDoFmt() which  specifies the way
  1206.                  the slider level  should be  printed.  NOTE:  When  this is
  1207.                  omitted the slider level won't be printed.
  1208.  
  1209.  Lev. Place    » With this gadget you can specify where GadTools is to print
  1210.                  the slider level. The possibilities are LEFT,  RIGHT, ABOVE
  1211.                  and below.
  1212.  
  1213.  »»» 9.9) The String Gadget
  1214.  
  1215.  ExitHelp      » When this gadget  is  selected  you  will  get  a  GADGETUP
  1216.                  message with 0x5F as  code to indicate  that the  user  has
  1217.                  presed the HELP key in the gadget.
  1218.  
  1219.  TabCycle      » When this gadget is selected the string  gadget will  cycle
  1220.                  to the next/previous  integer/string gadget  when the  user
  1221.                  presses TAB or SHIFT+TAB.
  1222.  
  1223.  MaxChars      » You must type the maximum possible characters plus one that
  1224.                  may be typed in the gadget.  NOTE:  This cannot be  smaller
  1225.                  than 2.
  1226.  
  1227.  String        » Type the default string in this gadget  that the  resulting
  1228.                  gadget has in it.
  1229.  
  1230.  »»» 9.10) The Number Gadget
  1231.  
  1232.  NOTE: During the editing the number  gadget can  be selected  to be  moved,
  1233.        sized, deleted etc.   This  is  only  possible in  the  program!  The
  1234.        gadget generated in the source will NOT  respond to clicking  in  it!
  1235.        The NUMBER kind of gadget  is a  READONLY  gadget  which  is used  to
  1236.        display numbers.
  1237.  
  1238.  Border        » When this gadget is  checked  it  means  that a  "recessed"
  1239.                  border will be drawed around the gadget.
  1240.  
  1241.  Number        » In this gadget you can  type  the default  number  that the
  1242.                  gadget should display.
  1243.  
  1244.  »»» 9.11) The Text Gadget
  1245.  
  1246.  NOTE: During the editing  the  text  gadget can  be selected  to be  moved,
  1247.        sized, deleted etc.   This  is  only  possible in  the  program!  The
  1248.        gadget generated in the source will NOT  respond to clicking  in  it!
  1249.        The TEXT kind  of  gadget  is a  READONLY  gadget  which  is used  to
  1250.        display informative texts.
  1251.  
  1252.  Border        » When this gadget is  checked  it  means  that a  "recessed"
  1253.                  border will be drawed around the gadget. NOTE: When you did
  1254.                  not enter a text in the "Def. Text"  gadget the  border  is
  1255.                  switched on no matter what this gadget says.
  1256.  
  1257.  CopyText      » When this gadget is checked the gadtools.library will  make
  1258.                  it's own private copy of the text.
  1259.  
  1260.  Def. Text     » In this gadget you  can  type  the  default  text  that the
  1261.                  gadget should display.
  1262.  
  1263.  »»» 9.12) The Button Gadget
  1264.  
  1265.  Toggle        » When  this  gadget  is  switched  on  you will get a toggle
  1266.                  select gadget (on/off) gadget.   I've  done this by setting
  1267.                  the GACT_TOGGLESELECT  flag in  the  created  gadget.  This
  1268.                  probably isn't the "right" way to do  this but  I don't see
  1269.                  that it can harm either.
  1270.  
  1271.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1272.  » 10) Menu Requesters                                                     »
  1273.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1274.  GadToolsBox uses three (actually two) windows to let the user edit complete
  1275.  menu-strips. Following is a description of those windows.
  1276.  
  1277.  »»» 10.1) The Menu Requester
  1278.  
  1279.  This requester is used to edit  the menus.  In the  window you'll  see  the
  1280.  following gadgets:
  1281.  
  1282.  Menus         » This  listview  gadget  contains  the names  of  the  menus
  1283.                  currently in memory.  Below this ListView  gadget a  string
  1284.                  gadget is  located  which  is used  to  enter/edit the menu
  1285.                  names. To add a new menu to  the list  you must  enter it's
  1286.                  name in this string gadget and press return. To edit a menu
  1287.                  name you must  first  click on  the  name  in  the listview
  1288.                  gadget and then edit the name in the string gadget.
  1289.  
  1290.  Disabled      » This CheckBox gadget tells GadToolsBox whether you want the
  1291.                  menu to be disabled or not.
  1292.  
  1293.  ItemEd        » This gadget must be clicked when you want to add some items
  1294.                  to a menu. To do this you must first click on the menu name
  1295.                  in the listview gadget which you want to edit items for and
  1296.                  then click on this gadget.  If  all goes  well you  will be
  1297.                  presented with the "(Sub)Item Requester" (see below).
  1298.  
  1299.  Delete        » When you want to delete a menu you must click  on it's name
  1300.                  in the listview gadget and then click on this gadget.  Then
  1301.                  a requester pops up asking for confirmation. NOTE: Deleting
  1302.                  a menu with  items  attached to it  will also delete  those
  1303.                  items.
  1304.  
  1305.  DONE          » Clicking on this gadget will close the requester and resume
  1306.                  to gadget editing.
  1307.  
  1308.  »»» 10.2) The (Sub)Item Requester
  1309.  
  1310.  This requester  is used to  edit  (sub)items  for  a  specific   menu. This
  1311.  requester is the same for editing items and subitems. The following gadgets
  1312.  are in the window:
  1313.  
  1314.  (Sub)Items    » This  listview  gadget  contains  the names  of  the  (sub)
  1315.                  items currently attached to the menu.  Below  this ListView
  1316.                  gadget a string gadget is located  which is used  to  enter
  1317.                  /edit the (sub)item names. To add a new  (sub)item  to  the
  1318.                  list  you must  enter it's name  in this string  gadget and
  1319.                  press return. To edit a menu name you must  first  click on
  1320.                  the  name  in  the listview  gadget and then  edit the name
  1321.                  in the string gadget.
  1322.  
  1323.  Checkit       » This will turn the intuition  CHECKIT  flag on/off  for the
  1324.                  (sub)item.
  1325.  
  1326.  Disabled      » This CheckBox gadget tells GadToolsBox whether you want the
  1327.                  (sub)item to be disabled or not.
  1328.  
  1329.  Checked       » This will turn the intuition  CHECKED  flag on/off  for the
  1330.                  (sub)item.
  1331.  
  1332.  MenuToggle    » This will turn the intuition MENUTOGGLE flag on/off for the
  1333.                  (sub)item.
  1334.  
  1335.  ShortCut      » You can  add a  keyboard  shortcut  for  the  (sub)item  by
  1336.                  entering the shortcut key in this gadget. NOTE: The program
  1337.                  will detect it when you try to use a shortcut key that  you
  1338.                  have already used.
  1339.  
  1340.  BarLab        » When you click on this gadget a separator bar (NM_BARLABEL)
  1341.                  is inserted in the list automatically.
  1342.  
  1343.  SubEd        »  This  gadget  must be  clicked when  you  want to  add some
  1344.                  subitems to a item. To do this you must  first click on the
  1345.                  item name in the listview  gadget which  you want  to  edit
  1346.                  subitems for  and  then  click on  this gadget. If all goes
  1347.                  well the requester will switch to  subitems editing.  NOTE:
  1348.                  This gadget is disabled  when the  requester already  is in
  1349.                  the subitem mode.
  1350.  
  1351.  Delete        » When you want to delete a (sub)item you must click  on it's
  1352.                  name in the listview gadget  and then click on this gadget.
  1353.                  Then a requester  pops  up asking  for confirmation.  NOTE:
  1354.                  Deleting a item  with  subitems  attached to it  will  also
  1355.                  delete those subitems.
  1356.  
  1357.  DONE          » Clicking on this gadget will  close the  requester and  put
  1358.                  you back in the menu requester.
  1359.  
  1360.  NOTE: There is a possibility to set the MutualExclude  of an item but  this
  1361.  has a bug in it which I can't find. When you click on  the (sub)item  which
  1362.  must  do  the  excluding and you press the 'x' key you will see the message
  1363.  "DRAG-SELECT ITEMS TO EXCLUDE" in the title bar of the item ed window.  Now
  1364.  you must click the menu-button of the mouse and go to the menu.  Here's the
  1365.  bug..... YOU MUST KEEP THE MOUSE WITH THE RIGHT-BUTTON PRESSED ON  THE MENU
  1366.  FOR ABOUT 10-15 SECONDS BEFORE INTUITION  DECIDES TO DROP  THE  MENU ??????
  1367.  When the menu is down you must check the items that are to be  excluded and
  1368.  the mutual-exclude value will be set. To check several items you must click
  1369.  the left-mouse-button on each item whilst  holding  down  the  right mouse-
  1370.  button. If you know what  the bug is  please tell me about it so that I can
  1371.  fix it.
  1372.  
  1373.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1374.  » 11) The Generated Source                                                »
  1375.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1376.  The source output of GadToolsBox is devided into two  seperate  files.  The
  1377.  first file is a header (.h|.i) containing EXTERNS or XREF'S to the  data in
  1378.  the  generated main source and  CONSTANTS  for  the  gadget  ID's  and  the
  1379.  positions of the gadgets in the  Gadget  Array.  The  second  file  (.c|.s)
  1380.  (from here on refered to as "main file") contains all data  and routines to
  1381.  setup things. From here on when I refer to <Project_Name>  I mean  the name
  1382.  entered in  the "Edit Data" requester from the Window menu and when I refer
  1383.  to  <Gadget_Label> I mean the  name  you have typed  in the "Label"  gadget
  1384.  of one  of the  gadget kind requesters.  In  the  main  file  the following
  1385.  routines are generated:
  1386.  
  1387.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1388.    » long SetupScreen( void );                                         »
  1389.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1390.     This routine will open or lock the screen and get it's visual info.
  1391.     When requested (see Preferences Menu) this routine  will also  open
  1392.     the font. Also it willsetup the boopsi image for the GETFILE gadget
  1393.     when such a gadget is used.  This  routine  can  return  one of the
  1394.     following errors:
  1395.  
  1396.         0 = No errors.
  1397.         1 = Could not open or lock the screen.
  1398.         2 = Could not get the screen it's visual info.
  1399.         3 = Could not setup the GETFILE boopsi class.
  1400.         4 = Could not get a GETFILE boopsi object.
  1401.         5 = Could not open the font.
  1402.  
  1403.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1404.    » void CloseDownScreen( void );                                     »
  1405.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1406.     This routine will free the resources taken by "SetupScreen()".  You
  1407.     must still call this routine when  "SetupScreen()"  failed to close
  1408.     and free the resources that didn't fail to open!!!
  1409.  
  1410.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1411.    » long Open<Project_Name>Window( void );                            »
  1412.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1413.     There are as much of these routines as there are Project Windows in
  1414.     the file you have generated. These routines will setup the  gadgets
  1415.     and menus and open the window. These routines can return one of the
  1416.     following errors:
  1417.  
  1418.         0 = No errors.
  1419.         1 = Could not create a gadget context.
  1420.         2 = Error during the gadget creation.
  1421.         3 = Could not create the menus.
  1422.         4 = Could not open the window.
  1423.  
  1424.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1425.    » void Close<Project_Name>Window( void );                           »
  1426.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1427.     There are as much of these routines as there are Project Windows in
  1428.     the file you have generated. These routines will free all resources
  1429.     that the "Open<Project_Name>Window()" routine has taken.  You  must
  1430.     still call this routine if "Open<Project_Name>Window()" has failed!
  1431.  
  1432.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1433.    » void <Project_Name>Render( void );                                »
  1434.    »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1435.     Each Project Window which has texts and/or BevelBoxes  attached  to
  1436.     it will have a routine which renders these texts and/or  BevelBoxes
  1437.     in the window. This routine must also be called by the user program
  1438.     uppon  receiving a IDCMP_REFRESHWINDOW message at the  window port.
  1439.     When such a message  is received  this  routine   must  be   called
  1440.     between   the   GT_BeginRefresh()  and GT_EndRefresh() calls.  Here
  1441.     is a  small example of what I mean:
  1442.  
  1443.         while( 1 ) {
  1444.             WaitPort( Wnd->UserPort );
  1445.             while( imsg = GT_GetIMsg( Wnd->UserPort )) {
  1446.  
  1447.                 Class = imsg->Class;
  1448.                 GT_ReplyIMsg( imsg );
  1449.  
  1450.                 switch ( Class ) {
  1451.  
  1452.                     case    IDCMP_REFRESHWINDOW:
  1453.                         GT_BeginRefresh( Wnd );
  1454.  
  1455.                         <Project_Name>Render(); /* re-draw texts and boxes */
  1456.  
  1457.                         GT_EndRefresh( Wnd, TRUE );
  1458.                         break;
  1459.  
  1460.                     .....
  1461.                 }
  1462.             }
  1463.         }
  1464.  
  1465.  The main file also has the following globals defined  which are  shared  by
  1466.  all project windows:
  1467.  
  1468.     struct Screen *Scr;          A pointer to the opened/locked screen
  1469.     APTR           VisualInfo;   A pointer to the visual info
  1470.  
  1471.  The following globals are only  generated when the file contains gadgets or
  1472.  menus and when the OpenFont routine is generated and  when the window  must
  1473.  have a zoom gadget:
  1474.  
  1475.     struct Gadget   *<Project_Name>GList;  A pointer to the created gadgets
  1476.     struct Menu     *<Project_Name>Menus;  A pointer to the created menus
  1477.     WORD             <ProjectName>Zoom[4]; The window alternate positions
  1478.     struct TextFont *Font;       A pointer to the opened font
  1479.  
  1480.  Also  generated  are  pointers  for each project window  that is in memory.
  1481.  Also the window title is generated as a global pointer.   These pointer are
  1482.  generated as follows:
  1483.  
  1484.     struct Window   *<Project_Name>Wnd;    A pointer to the window;
  1485.     UBYTE           *<Project_Name>Wdt;    A pointer to the window title;
  1486.  
  1487.  Four words are generated for each window. These words  contain  the  window
  1488.  it's left and top-edge and the window it's width and  height. These globals
  1489.  are build as follows:
  1490.  
  1491.     UWORD       <Project_Name>Left;     Window left-edge
  1492.     UWORD       <Project_Name>Top;      Window top-edge
  1493.     UWORD       <Project_Name>Width;    Window width
  1494.     UWORD       <Project_Name>Height;   Window height
  1495.  
  1496.  These  words   should  be  changed  by  the  aplication  if  the  user  has
  1497.  re-sized   or re-positioned the window. This way when the window  is closed
  1498.  and  then re-opened  again it will be opened the size and  position  it had
  1499.  the last time  it was  open. Note: When the user has changed the window you
  1500.  _must_ substract the window top-border  size  from the window height before
  1501.  setting in the the "<Project_Name>Height" global. Here is a  little example
  1502.  of what I mean:
  1503.  
  1504.     while( 1 ) {
  1505.         WaitPort( Wnd->UserPort );
  1506.         while( imsg = GT_GetIMsg( Wnd->UserPort )) {
  1507.  
  1508.             Class = imsg->Class;
  1509.             GT_ReplyIMsg( imsg );
  1510.  
  1511.             switch( Class ) {
  1512.  
  1513.                 case    IDCMP_CHANGEWINDOW:
  1514.                     <Project_Name>Left   = Wnd->LeftEdge;
  1515.                     <Project_Name>Top    = Wnd->TopEdge;
  1516.                     <Project_Name>Width  = Wnd->Width;
  1517.                     <Project_Name>Height = Wnd->Height - Wnd->BorderTop;
  1518.                     break;
  1519.  
  1520.                 .....
  1521.  
  1522.             }
  1523.         }
  1524.     }
  1525.  
  1526.  Also the main  file contains  the Gadget  Array's for  each  project window
  1527.  which are define as follows:
  1528.  
  1529.  struct Gadget *<Project_Name>Gadgets[];
  1530.  
  1531.  To access the pointers in this array the program generates DEFINES or EQU'S
  1532.  in the header file which specify  the position  of a certan  gadget in  the
  1533.  array. These defines are build as follows:
  1534.  
  1535.  #define GDX_<Gadget_Label>
  1536.  
  1537.  Be sure that the "gadtools.library", "intuition.library","graphics.library"
  1538.  and "utility.library" are all open BEFORE any  of  the  generated  routines
  1539.  are called. When you use a diskfont and the "Gen. OpenFont" switch is on in
  1540.  the Preferences window the "diskfont.library" must also be opened. For  the
  1541.  assembler  source  the valid pointers to  these  libraries must  be  stored
  1542.  globally with  the  names  "_GadToolsBase",  "_IntuitionBase",  "_GfxBase",
  1543.  "_UtilityBase" and "_DiskfontBase"  otherwise  you  get  problems  linking.
  1544.  
  1545.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1546.  » 12) The GetFile Boopsi Image                                            »
  1547.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1548.  When you use the GetFile gadget and you generate the  source  you  __MUST__
  1549.  link with the supplied object code "boopsi.o"!  This contains the code that
  1550.  will setup a private sub-class which will handle the drawing of the GetFile
  1551.  Image. The source of "boopsi.o"  has been included with the distribution so
  1552.  you  can  see  how  it  has  been  done.   The code of  the boopsi image is
  1553.  re-entrant so it can be used in residentable  programs and  libraries  etc.
  1554.  Please note  that the Boopsi  image is  _not_ public  domain.  It is freely
  1555.  distributable  and  remains  © Copyright 1992 Jaba Development.    You  may
  1556.  however distribute it with your  program no matter  wether your  program is
  1557.  public domain, freeware, shareware or commercial.
  1558.  
  1559.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1560.  » 13) Adapt Font                                                          »
  1561.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1562.  When the "Adapt. Font" option in the Preferences window is switched  on the
  1563.  source  generators will  create  source  that  will automatically adapt the
  1564.  gadget, bevel-box and window sizes and positions to the  active  font.  The
  1565.  resulting  source  also checks  to see wether or not the window will fit on
  1566.  the screen.    If  it  doesn't  fit  anymore the topaz 8 font will be used.
  1567.  GadToolsBox  forces  you  to  use  the  topaz  8 font  when creating a user
  1568.  interface with the "Adapt. Font" option on because  when  you  would have a
  1569.  larger font and you would (for example)  create  a  SCROLLER  of  10 pixels
  1570.  high  and  at  run  time  a  smaller  font  is  active  the  routine   that
  1571.  re-calculates the gadget  could make the SCROLLER to small.
  1572.  
  1573.  In the generated source a routine called "ComputeFont()" is generated. This
  1574.  routine calculates the font  size  and it will  check if the  window  still
  1575.  fit's on the screen using the font. If the window does not fit anymore this
  1576.  routine will automatically switch to the topaz 8 font.      This routine is
  1577.  always  static  and  you  should  never  need  to  call  this yourself. Two
  1578.  kinds  of  adaptable  source  can  be generated.   The  first kind uses the
  1579.  font of the screen on  which the  window  opens  and  the second,  when the
  1580.  "Use SysFont" switch in the preferences window is  on, will use  the system
  1581.  default font (GfxBase->DefaultFont).  Also two routines called "ComputeX()"
  1582.  and "ComputeY()"  are  generated  which  re-calculate  the  horizontal  (X)
  1583.  and vertical (Y) values for the gadgets, bevel-boxes, windows and texts.
  1584.  
  1585.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1586.  » 14) Notes                                                               »
  1587.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1588.  At this time there really isn't much to say about the program. It is a tool
  1589.  that  will  ( or atleast should )  save  you a lot  of time  in creating  a
  1590.  GadTools user interface for your programs.   I've done some  testing  using
  1591.  "Enforcer" and "MungWall" and I didn't find enforcer hits  and the  program
  1592.  (as far as I know) handles low memory conditions well.  When  a big font is
  1593.  used in the program it can  happen  that  some  requesters won't fit on the
  1594.  screen anymore. Intuition will automatically resize  the requester  so that
  1595.  it will fit  on the screen but some gadgets might not be reachable anymore.
  1596.  When  you want to save the binaries crunched you must copy the V35+ version
  1597.  of the PowerPacker.library  in your libs: directory  and you  must setup T:
  1598.  as a logical device.  To do this you must have something like  this in your
  1599.  startup-sequence:
  1600.  
  1601.         MakeDir RAM:T
  1602.         Assign  T:  RAM:T
  1603.  
  1604.  If someone wants to translate this manual into her/his language  permission
  1605.  is herby granted. The only thing I ask is that you  send me a  copy of  the
  1606.  translation  so that  I can  distribute  it with  the next  release of  the
  1607.  program. When you use a screen bigger  than the  normal display  mode  size
  1608.  and you are on a part of the screen that  doesn't display the  screen  it's
  1609.  top-left corner you will not see the title  messages  GadToolsBox  displays
  1610.  sometimes. So if gadtoolsbox doesn't seem to respond to your input  move to
  1611.  the top-left of the screen and read the  message.   Although  this  program
  1612.  itself does not follow all the rules layed out in the "User Interface Style
  1613.  Guide" I still strongly suggest you try to follow the rules  layed  out  in
  1614.  in that guide.  From  v1.3  on  GadToolsBox  has an embedded version string
  1615.  in the "User Interface Style Guide" format.  When  submitting  a bug-report
  1616.  please tell me the version of the GadToolsBox program you are using.   This
  1617.  can be established by typing "Version GadToolsBox" in the shell.
  1618.  
  1619.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1620.  » 15) Credit                                                              »
  1621.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1622.  I would like to thank the following people for their  many suggestions  and
  1623.  bug reports. Without these people GadToolsBox wouldn't be where it is today
  1624.  
  1625.                      ________    T H A N K S    ________
  1626.  
  1627.     Wolfgang Küting,    Kasper Peeters,  Stefan Becker,      Nico Fraçois,
  1628.     Sebastiano Vigna,   Andreas Jung,    Ken Simpson,        Kai Bolay,
  1629.     Ola Olsson,         Richard Waspe,   Carsten Feilhaber,  Garry Glendown
  1630.     Jochen Kreimer,     Georg Hessmann,  Martin Laubach
  1631.  
  1632.  And special thanks to:
  1633.  
  1634.     Matthew Dillon      For his incredible Dice ( you should register.... )
  1635.     Stefan Becker       For sending me my Dice update
  1636.     Fred Fish           For the huge pile of AmigaLibDisks he produces
  1637.     Huub Schuivers      For installing 2MB on my A2630 card
  1638.     Andreas Jung        For his donation
  1639.     Ingo Sabel          For his donation
  1640.     Frederic Hahn       For the bottle of white wine
  1641.  
  1642.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1643.  » 16) __IMPORTANT__                                                       »
  1644.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1645.  Due  to  a  bug in  the  previous  releases  of GadToolsBox (v37.79--) it's
  1646.  possible that you have binary files which contains  a  corrupt  menu strip.
  1647.  This because the program counted sub-items for  items which didn't have any
  1648.  sub-items.  This would cause the binary file routine to write the sub-items
  1649.  that  didn't exist to the file.  To fix  these files  you must load them in
  1650.  this version of GadToolsBox and go  into the  Menu Editor  ("Edit Menus..."
  1651.  under the  "Menus" menu). Now select the first menu and click on  "ItemEd".
  1652.  Now   select  each   non-NM_BARLABEL  item  which  should  _NOT_  have  any
  1653.  sub-items  and press "SHIFT+E". Each time the requester pops-up and you are
  1654.  sure that  you have selected the right item you  should click  on "Yes"  in
  1655.  the  requester.  You must repeat this action for all menus and  then  (when
  1656.  you are finished) save the file again.  I know  that this  could  mean some
  1657.  work with big menus  but I think it's better to do  this than to  re-create
  1658.  the  whole  user-interface. I'm very  sorry for this  bug but it was one of
  1659.  those  famous ones  that only occured sometimes.   NOTE:  BINARIES  CREATED
  1660.  WITH  V1.0  OF  GADTOOLSBOX  CANNOT  BE  READ/REPAIRED  BY  THIS VERSION OF
  1661.  GADTOOLSBOX.  ONLY THE BINARIES CREATED WITH V1.2++ CAN BE READ/REPAIRED BY
  1662.  THIS VERSION OF GADTOOLSBOX.
  1663.  
  1664.  »»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»
  1665.  
  1666.  Bug reports,  suggestions,  postcards,  flames,  criticism,  contributions,
  1667.  ideas, gifts, opinions about the new U2 cd 'Achtung Baby', how  to  make  a
  1668.  million, inspirations, flowers,  etc., etc., etc........... to:
  1669.  
  1670.  Jan van den Baard                        Fido: 2:500/29 (Jan van.den.Baard)
  1671.  Bakkerstraat 176
  1672.  3082 HE, Rotterdam
  1673.  Holland
  1674.  
  1675.       »» "Trust me. I know what I'm doing." -: Sledge Hammer         ««
  1676.       »» "Life sucks"                       -: Al Bundy              ««
  1677.       »» "Hasta la vista, Baby"             -: The Terminator        ««
  1678.       »» "It's better to dream about an Amiga than to have an Atari" ««
  1679.